home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d19 / ckit15a.arc / CKIT.H < prev    next >
C/C++ Source or Header  |  1990-08-13  |  16KB  |  270 lines

  1. /****************************************************************************
  2.  *   FILE CKIT.H                                                            *
  3.  *   Created 11-FEB-1990            Rickie W. Belitz                        *
  4.  *                                  820 Brentwood Drive                     *
  5.  *                                  Maryville, Tennessee  37801             *
  6.  *                                  BBS (615) 982-6512                      *
  7.  *                                      (615) 982-6537                      *
  8.  *                                      (615) 982-8723                      *
  9.  *                                                                          *
  10.  *   Include file for    CKIT - DOOR Toolkit                                *
  11.  *                                                                          *
  12.  *                                                                          *
  13.  ****************************************************************************/
  14. /******************************************************************************
  15. *                        INCLUDE files needed                                 *
  16. *******************************************************************************/
  17.  
  18. #include    <stdio.h>
  19. #include    <stdlib.h>
  20. #include    <dos.h>
  21. #include    <time.h>
  22. #include    <string.h>
  23. #include    <stdarg.h>
  24. #include    <share.h>
  25. #include    <io.h>
  26. #define     MICROSOFT   1
  27. #define     TURBOC      2
  28.  
  29. /****************************************************************************
  30.  *      IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF         *
  31.  ****************************************************************************/
  32. #if COMPILER == MICROSOFT
  33.  
  34.     #include    <malloc.h>
  35.  
  36.  
  37. #else
  38.  
  39.     #if COMPILER == TURBOC
  40.  
  41.         #include    <alloc.h>
  42.  
  43.     #endif
  44.  
  45. #endif
  46.  
  47. /****************************************************************************
  48.  *     ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF    *
  49.  ****************************************************************************/
  50.  
  51. /* data type definitions */
  52. typedef     unsigned char BYTE;    /* Define BYTE to mean unsigned char */
  53.  
  54. /* logical  constants  */
  55. #define     NULL        0          /* integer constant                  */
  56. #define     ERR         -1
  57. #define     EVER        ;;         /* Used in "for (EVER)"              */
  58. #define     FALSE       0
  59. #define     TRUE        1
  60. #define     NOT_READY   -1
  61. #define     NO_KEY      0
  62. #define     LOGOFF      0           /* Normal logoff        */
  63. #define     NOCARRIER   1           /* Carrier lost         */
  64. #define     TIMEOUT     2           /* Keyboard timeout     */
  65. #define     SYSOP_O     3           /* Sysop request        */
  66. #define     SYSTEMTIME  4           /* System time elapse   */
  67. /******************************************************************************
  68. *                        ANSI color table indexes                             *
  69. *******************************************************************************/
  70. #define dkblue          1
  71. #define dkgreen         2
  72. #define dkcyan          3
  73. #define dkred           4
  74. #define dkviolet        5
  75. #define magenta         5
  76. #define brown           6
  77. #define grey            7
  78. #define dkgrey          8
  79. #define blue            9
  80. #define green           10
  81. #define cyan            11
  82. #define red             12
  83. #define violet          13
  84. #define yellow          14
  85. #define white           15
  86.  
  87. /******************************************************************************
  88.  *        External variable declarations                                      *
  89.  ******************************************************************************/
  90. extern  BYTE    option;             /* Defines how the user was logged off */
  91. extern  int     DUMP_USER;          /* Set to log off user from door       */
  92.  
  93. extern  char    system_time_HHMMSS[];       /* Current system time        */
  94. extern  char    todays_date_MMDDYY[];       /* Current system date        */
  95. extern  void    adjust_time_allowed(short);
  96. extern  BYTE    cmdline[];                  /* Used to hold user input    */
  97. extern  char    par[];                      /* Used to parse next cmd to  */
  98. extern  short   linenum;                    /* Number of lines displayed  */
  99. extern  short   graphics;                   /* ANSI in use                */
  100. extern  short   display;                    /* Local display on/off       */
  101. extern  short   local;                      /* Local mode indicator       */
  102. extern  short   printer;                    /* Printer online/offline     */
  103. extern  short   pagebell;                   /* Page bell on/off           */
  104. extern  short   callalarm;                  /* Caller alarm on/off        */
  105.  
  106. extern  short   port;                       /* Port number in use         */
  107.  
  108. extern  short   error_connection;           /* Error correction modem?    */
  109.  
  110. /* misc. see CKIT.DOC for more information on these */
  111. extern  short   time_on,prev_used,time_limit,dload_limit,
  112.                 time_added,time_credit, min_left,event_active,event_slide,
  113.                 user_record, ansi_NG, record_lock, PCB12, PCB, expert, parity,
  114.                 current_conference;
  115.  
  116. /* Pointer to string of conferences user is registered in */
  117. extern  BYTE    *conferences;
  118.  
  119. /* C strings containing information read from PCBoard.sys or DOOR.SYS  */
  120.  
  121. extern  BYTE    firstname[16];          /* User's firstname         */
  122. extern  BYTE    fullname[26];           /* User's fullname          */
  123. extern  BYTE    bps_open[6];            /* DTE baud rate            */
  124. extern  BYTE    baud_rate[6];           /* modem->modem baud rate   */
  125. extern  BYTE    sysop_next[2];          /* Sysop next indicator     */
  126. extern  BYTE    netchat[2];             /* Net chat status          */
  127. extern  BYTE    password[13];           /* User's password          */
  128. extern  BYTE    language[6];            /* Language in use          */
  129. extern  BYTE    event_time[6];          /* Scheduled event time     */
  130. extern  BYTE    aport[2];               /* ASCII port number in use */
  131. extern  char    node[3];                /* Node number of call      */
  132. extern  char    upload_total[5];        /* Total files downloaded   */
  133. extern  char    dload_total[5];         /* Total files uploaded     */
  134. extern  char    daily_bytes[4];         /* Total Daily K bytes      */
  135. extern  char    download_Kbytes[10];    /* Total K bytes downloaded */
  136. extern  char    upload_Kbytes[10];      /* Total K bytes uploaded   */
  137. extern  BYTE    time_logged[6];
  138.  
  139. extern  char    caller_bday[8];         /* User's birthday           */
  140. extern  char    main_dir[15];           /* System's main dir         */
  141. extern  char    gen_dir[15];            /* System's gen dir          */
  142. extern  char    sysop_name[15];         /* Sysop's name              */
  143. extern  char    sysop_alias[15];        /* Sysop's alias name        */
  144. extern  char    last_file_scan[8];      /* Last new file scan        */
  145. extern  char    max_files[4];           /* Max. daily files avail    */
  146. extern  char    daily_files[4];         /* Number of files dloaded   */
  147. extern  char    total_doors[4];         /* Number of doors opened    */
  148. extern  char    msgs_left[4];           /* Number of messages left   */
  149. extern  BYTE    page_length;            /* User's page_length        */
  150.  
  151.  
  152. extern  short   FORCEOFFHOOK;          /* Set to TRUE or FALSE                */
  153. extern  short   LOGOFFMSG;             /* Set to TRUE or FALSE                */
  154. extern  short   USERSFILE;             /* Set true if you want user file info */
  155. extern  char    progname[20];          /* Put you program name here! */
  156.                                        /*  MAXIMUM 20 CHARACTERS!    */
  157.  
  158. /******************************************************************************
  159.  *                    Structure declarations                                  *
  160.  ******************************************************************************/
  161.  
  162. typedef struct pcbuserstype {
  163.  
  164.     char    name[26];                   /* First and Last name                */
  165.     char    city[25];                   /* City and State                     */
  166.     char    pwrd[13];                   /* Password                           */
  167.     char    bphone[14];                 /* Business/Data phone number         */
  168.     char    phone[14];                  /* Home phone number                  */
  169.     char    last_date[7];               /* Last date on in (YYMMDD) format    */
  170.     char    last_time[6];               /* Last logon time in HH:MM) format   */
  171.     char    expert[2];                  /* Expert Mode (Y or N)               */
  172.     char    protocol[2];                /* Protocol type                      */
  173.     char    space1;                     /* Reserved                           */
  174.     char    filedate[7];                /* Last DIR look date (YYMMDD) format */
  175.     BYTE    security;                   /* Security level of user             */
  176.     short   total_calls;                /* Number of times on                 */
  177.     BYTE    page_length;                /* Page length                        */
  178.     unsigned    long    uploads;        /* Number of Uploads                  */
  179.     unsigned    long    downloads;      /* Number of Downloads                */
  180.     double  dload_bytes;                /* Daily dload bytes so far           */
  181.     char    comment1[31];               /* User maintained comment            */
  182.     char    comment2[31];               /* Sysop maintained comment           */
  183.     short   time_used;                  /* Elapsed time on system             */
  184.     char    expire_date[7];             /* Subscription Reg. Date (YYMMDD)    */
  185.     BYTE    expire_level;               /* Expired security level             */
  186.     BYTE    current_conf;               /* Area number last in                */
  187.     BYTE    conferences[6];             /* Conferences area allowed in        */
  188.     BYTE    expire_conf[6];             /* Expired conference areas           */
  189.     BYTE    scan_conf[6];               /* Conferences desired for mail scan  */
  190.     double  dload_total;                /* Total bytes downloaded - all calls */
  191.     double  upload_total;               /* Total bytes uploaded - all calls   */
  192.     char    delete_user[2];             /* Delete user flag (Y or N)          */
  193.     long    last_read[4][39];           /* Last Read Message Area pointers    */
  194.     BYTE    space2[15];                 /* Reserved                           */
  195.  
  196. };
  197.  
  198. extern  struct pcbuserstype  user;
  199.  
  200. /******************************************************************************
  201.  *                External function prototypes                                *
  202.  ******************************************************************************/
  203.  
  204. extern  void    clear_screen(void);
  205. extern  void    set_r_c(short, short);
  206. extern  void    open_door(char *, char *);
  207. extern  void    close_door(void);
  208. extern  void    s_putv();                   /* High level send variable string I/O function     */
  209. extern  void    s_puts(char *);             /* High level send string I/O function              */
  210. extern  void    s_putsn(char *);            /* High level send string LOCAL only                */
  211. extern  void    s_putstd(char *);           /* High level send string using STD output          */
  212. extern  void    s_putc(BYTE);               /* High level send char.  I/O function              */
  213. extern  void    newline(void);              /* send a Carriage return, line feed                */
  214. extern  void    clear_row(short);           /* Clear a given row of screen                      */
  215. extern  void    color(short);               /* Select ANSI color to use                         */
  216. extern  void    pos_cursor(short, short);   /* Position cursor using ANSI                       */
  217. extern  void    clr_screen(void);           /* Clear local/remote screens                       */
  218. extern  void    back_space(short);          /* Destructive backspace  local/remote              */
  219. extern  void    clear_eol(void);            /* Clear to end of line local/remote                */
  220. extern  short   display_file(char *);       /* Display file local/remote                        */
  221. extern  void    prompt_def(char *, char *); /* Display prompt, with default string              */
  222. extern  void    get_def(char *, char *);    /* Same as prompt_def, but gets input               */
  223. extern  void    get_defn(char *, char *);   /* Same as get_def, appends "(Enter)=none?"                 */
  224. extern  void    get_defen(char *);          /* Same as get_def, but default is always "(Enter=none? "   */
  225. extern  void    get_defyn(char *, short);   /* Get input with yes/no default based on short value       */
  226. extern  short   nomore(void);               /* prompt more?, returns TRUE if no or              */
  227. extern  size_t  inkey(void);                /* Read char. from local/remote                     */
  228. extern  size_t  getkey(void);               /* Read char. from local keyboard                   */
  229. extern  void    force_enter(void);          /* Force user to press enter key to continue        */
  230. extern  void    get_cmdline(void);
  231. extern  void    get_cmdline_raw(short);     /* Get cmdline, erase prompt based on short         */
  232. extern  void    input(BYTE *, short);       /* Read input into cmdline, local/remote            */
  233. extern  short   keystat();                  /* Check if key waiting                             */
  234. extern  BYTE    receive(void);   /* Get character receieved from the receive buffer             */
  235. extern  BYTE    sio_getbyte (void);     /* Returns byte from port, if available                 */
  236. extern  char    get_nextpar(void);
  237. extern  void    display_time(void);     /* Display XXXX used, XXXX left (x = mins               */
  238. extern  void    check_time_left(void);  /* Check if user time is up, sets DUMPUSER              */
  239. extern  void    adjust_time_allowed(short); /* Add/Subtract user time left                      */
  240. extern  short   event_minutes(void);    /* Return minutes from midnight of event                */
  241. extern  void    lower_dtr(void);        /* Lower DTR line on serial port                        */
  242. extern  void    raise_dtr(void);        /* Raise DTR line on serial port                        */
  243. extern  void    force_offhook(void);    /* Force modem to hangup, go offhook                    */
  244. extern  BYTE    check_cd(void);         /* Return CARRIER status, Non-Zero = CARRIER            */
  245. extern  void    transmit_data(char *);  /* Xmit to remote only, with CARRIER detect             */
  246. extern  void    transmit_modem(char *); /* Xmit to modem, WITHOUT CARRIER detect                */
  247. extern  size_t  tqueue_len(void);       /* Returns length (in bytes) of serial xmit buffer      */
  248. extern  void    flush_rqueue(void);     /* Flush serial input buffer */
  249. extern  unsigned    long    get_time(void);
  250. extern  void    wait(short);
  251. extern  short   check_CR(void);         /* Check for Carriage Return, TRUE/FALSE */
  252. extern  short   check_keypress(BYTE);   /* Check for any ASCII code press */
  253. extern  void    purge_buffer(BYTE *, short); /* Purge buffer to NULLS */
  254. extern  void    debug_on(void);             /* Disable keyboard timer etc.    */
  255. extern  short    dos_shell(char *);         /* Execute external program       */
  256.  
  257. /****************************************************************************
  258.  *      IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF         *
  259.  ****************************************************************************/
  260. #if COMPILER == MICROSOFT
  261.  
  262. extern  void    _delay(short);      /* Gen. Purpose delay X 55 milliseconds */
  263.  
  264. #endif
  265. /****************************************************************************
  266.  *     ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF    *
  267.  ****************************************************************************/
  268. /******************************************************************************
  269.  ************************ E N D  OF  M O D U L E ******************************/
  270.